package com.ruoyi.web.plan.service.impl;

import java.util.List;
import java.util.Objects;

import com.ruoyi.framework.utils.DateUtils;
import com.ruoyi.web.plan.domain.TaskInfo;
import com.ruoyi.web.plan.domain.TaskModule;
import com.ruoyi.web.plan.mapper.TaskInfoMapper;
import com.ruoyi.web.plan.mapper.TaskModuleMapper;
import com.ruoyi.web.plan.service.ITaskInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 任务列表Service业务层处理
 *
 * @author ruoyi
 * @date 2024-11-28
 */
@Service
public class TaskInfoServiceImpl implements ITaskInfoService {
    @Autowired
    private TaskInfoMapper taskInfoMapper;
    @Autowired
    private TaskModuleMapper taskModuleMapper;

    /**
     * 查询任务列表
     *
     * @param taskId 任务列表主键
     * @return 任务列表
     */
    @Override
    public TaskInfo selectTaskInfoByTaskId(Long taskId) {
        return taskInfoMapper.selectTaskInfoByTaskId(taskId);
    }

    /**
     * 查询任务列表列表
     *
     * @param taskInfo 任务列表
     * @return 任务列表
     */
    @Override
    public List<TaskInfo> selectTaskInfoList(TaskInfo taskInfo) {
        return taskInfoMapper.selectTaskInfoList(taskInfo);
    }


    /**
     * 新增任务列表
     *
     * @param taskInfo 任务列表
     * @return 结果
     */
    @Override
    public int insertTaskInfo(TaskInfo taskInfo) {
        taskInfo.setCreateTime(DateUtils.getNowDate());
        return taskInfoMapper.insertTaskInfo(taskInfo);
    }

    /**
     * 修改任务列表
     *
     * @param taskInfo 任务列表
     * @return 结果
     */
    @Override
    public int updateTaskInfo(TaskInfo taskInfo) {
        TaskInfo sqlTask = taskInfoMapper.selectTaskInfoByTaskId(taskInfo.getTaskId());
        taskInfo.setUpdateTime(DateUtils.getNowDate());
        //启动任务，如果有时间就不更新时间
        if (taskInfo.getRunState().equalsIgnoreCase("1") && sqlTask.getStartTime() != null) {
            taskInfo.setStartTime(null);
        }
        //完成
        if (taskInfo.getRunState().equalsIgnoreCase("3") && sqlTask.getEndTime() != null) {
            taskInfo.setEndTime(null);
        }
        return taskInfoMapper.updateTaskInfo(taskInfo);
    }

    /**
     * 批量删除任务列表
     *
     * @param taskIds 需要删除的任务列表主键
     * @return 结果
     */
    @Override
    public int deleteTaskInfoByTaskIds(Long[] taskIds) {
        return taskInfoMapper.deleteTaskInfoByTaskIds(taskIds);
    }

    /**
     * 删除任务列表信息
     *
     * @param taskId 任务列表主键
     * @return 结果
     */
    @Override
    public int deleteTaskInfoByTaskId(Long taskId) {
        return taskInfoMapper.deleteTaskInfoByTaskId(taskId);
    }
}
